/* c01/ejemplo-01.c
Hola Mundo en SDL
*/
#include <SDL/SDL.h>
#define ANCHO 323
#define ALTO 400
#define PROFUNDIDAD_COLOR 16

int main(void){
	SDL_Surface *pantalla = NULL;
	SDL_Surface *imagen = NULL;
	//Inicializar el subsistema principal de SDL, el de video
	if (SDL_Init(SDL_INIT_VIDEO) < 0){
		printf("Error al iniciar SDL: %s\n", SDL_GetError());
		exit(1);	
	}
	/*
	 * Fuerza la ejecución de la función 'SDL_Quit()'
	 * aún en caso de salida con error , al llamar
	 * a 'exit(int)' o al retornar de la función 'main'
	 **/
	atexit(SDL_Quit);

	// Abrir la ventana para gráficos
	pantalla = SDL_SetVideoMode(ANCHO, ALTO, PROFUNDIDAD_COLOR, SDL_SWSURFACE);
	if(pantalla == NULL){
		printf("Error al inicializar el modo de video: '%s'\n", SDL_GetError());	
		exit(1);
	}
	
	//Cambiar el título de la ventana
	SDL_WM_SetCaption("¡Hola Mundo!", NULL);
	
	// Cargar una imagen
	imagen = SDL_LoadBMP("logo_uca.bmp");
	if(imagen == NULL){
		printf("Error al cargar la imagen: '%s'\n",SDL_GetError());
		exit(1);
	}
	
	// Copiar la imagen al buffer temporal en 'pantalla':
	SDL_BlitSurface(imagen, NULL, pantalla, NULL);

	//Volcar el buffer a la memoria de video:
	SDL_Flip(pantalla);
	
	//Esperar un tiempo de 5000 milisegundos
	SDL_Delay(5000);

	//y luego apagar el sistema de SDL con 'SDL_Quit()',
	//en este caso, invocada automáticamente con el return.
	return 0;
}
